|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.globalplatform.contactless.GPCLSystem
public class GPCLSystem
This class exposes a subset of the behavior of the CRS (OPEN extension) to other on-card components.
| Field Summary | |
|---|---|
static short |
AFI_ANY
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for all Contactless applications that belong to any family |
static short |
AFI_DATA_STORAGE
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Data Storage family |
static short |
AFI_FINANCIAL
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Financial family |
static short |
AFI_GAMING
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Gaming family |
static short |
AFI_IDENTIFICATION
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Identification family |
static short |
AFI_MEDICAL
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Medical family |
static short |
AFI_MULTIMEDIA
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Multimedia family |
static short |
AFI_TELECOMMUNICATION
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Telecommunication family |
static short |
AFI_TRANSPORT
Constant to use with getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Transport family |
static short |
CARD_INFO_COUNTER_UPDATE
The global CRS update counter. |
static short |
CARD_INFO_CURRENT_PROTOCOL_DATA_TYPE_A
The requested information is the CURRENT_PROTOCOL_DATA_TYPE_A (i.e. encoded as the content of sub tag 'A0' of INSTALL system parameter Tag '86'). |
static short |
CARD_INFO_CURRENT_PROTOCOL_DATA_TYPE_B
The requested information is the CURRENT_PROTOCOL_DATA_TYPE_B (i.e. encoded as the content of sub tag 'A0' of INSTALL system parameter Tag '87'). |
static short |
CARD_INFO_CURRENT_PROTOCOL_DATA_TYPE_F
The requested information is the CURRENT_PROTOCOL_DATA_TYPE_F (i.e. encoded as the content of sub tag 'A0' of INSTALL system parameter Tag '88'). |
static short |
CARD_INFO_DEFAULT_PROTOCOL_DATA_TYPE_A
The requested information is the DEFAULT_PROTOCOL_DATA_TYPE_A (i.e. content of INSTALL system parameter Tag '86' when sent to update OPEN parameters). |
static short |
CARD_INFO_DEFAULT_PROTOCOL_DATA_TYPE_B
The requested information is the DEFAULT_PROTOCOL_DATA_TYPE_B (i.e. content of INSTALL system parameter Tag '87' when sent to update OPEN parameters). |
static short |
CARD_INFO_DEFAULT_PROTOCOL_DATA_TYPE_F
The requested information is the DEFAULT_PROTOCOL_DATA_TYPE_F (i.e. content of INSTALL system parameter Tag '88' when sent to update OPEN parameters). |
static byte |
GPCL_CL_APPLICATION
The OPEN uses this identifier to retrieve the CLApplet interface implemented by an applet. |
static byte |
GPCL_CL_APPLICATION_ACTIVATION_POLICY
The OPEN uses this identifier to retrieve the CLAppletActivationPolicy interface implemented by an applet. |
static byte |
GPCL_CREL_APPLICATION
The OPEN uses this identifier to retrieve the CRELApplication interface implemented by an applet. |
static byte |
GPCL_CRS_APPLICATION
The OPEN uses this identifier to retrieve the CRSApplication interface implemented by an applet. |
static short |
GPCL_INTERFACE_ISO14443
Deprecated. Replaced by GPCL_PROXIMITY_IO_INTERFACE. |
static short |
GPCL_PROXIMITY_IO_INTERFACE
This constant is used with setCommunicationInterface(short, boolean)
to manage the availability of the proximity based communication interface. |
static short |
HOST_DEVICE_UI_AVAILABLE
Bit mask meaning that the host device UI is currently available. |
static short |
HOST_DEVICE_UI_STATE_UNKNOWN
Bit mask meaning that implementation is not able to provide any information about the state of the host device UI. |
static byte |
SECURE_ELEMENT_EMBEDDED
The Secure Element is of type Embedded Secure Element. |
static byte |
SECURE_ELEMENT_SDCARD
The Secure Element is of type Smart SD or Smart Micro SD Card. |
static byte |
SECURE_ELEMENT_UICC
The Secure Element is of type UICC. |
static byte |
SECURE_ELEMENT_UNKNOWN
The Secure Element type is of unknown type. |
| Method Summary | |
|---|---|
static boolean |
checkCommunicationInterfaceAccess(GPRegistryEntry entry,
short sInterface)
Checks whether a GPRegistryEntry can be accessed through specified communication interface. |
static short |
getCardCLInfo(byte[] buffer,
short offset,
short info)
Retrieve the OPEN's conctactless parameters. |
static GPCLRegistryEntry |
getGPCLRegistryEntry(javacard.framework.AID oAID)
Gets a reference to a GPCLRegistryEntry interface. |
static short |
getHostDeviceUserInterfaceState()
Gets the current state of the host device user interface (UI). |
static GPCLRegistryEntry |
getNextGPCLRegistryEntry(GPCLRegistryEntry oEntry,
short sFamily)
Iterates over contactless applets belonging to a particular Application Family. |
static byte |
getSecureElementType()
Gets the type of the Secure Element. |
static void |
launchHostDeviceApplication(byte[] parameters,
short offset,
short length)
Notifies the host device that it shall launch an application (on the host device) that is associated with the applet instance invoking this method. |
static void |
setCommunicationInterface(short sInterface,
boolean onOff)
Switches ON or OFF persistently the specified communication interface at GlobalPlatform card level. |
static void |
setVolatilePriority(GPCLRegistryEntry oEntry)
Sets up or resets the volatile priority for the specified entry. |
| Methods inherited from class java.lang.Object |
|---|
equals |
| Field Detail |
|---|
public static final byte GPCL_CL_APPLICATION
CLApplet interface implemented by an applet.
public static final byte GPCL_CRS_APPLICATION
CRSApplication interface implemented by an applet.
public static final byte GPCL_CREL_APPLICATION
CRELApplication interface implemented by an applet.
public static final byte GPCL_CL_APPLICATION_ACTIVATION_POLICY
CLAppletActivationPolicy interface implemented by an applet.
public static final short AFI_ANY
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for all Contactless applications that belong to any family
public static final short AFI_TRANSPORT
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Transport family
public static final short AFI_FINANCIAL
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Financial family
public static final short AFI_IDENTIFICATION
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Identification family
public static final short AFI_TELECOMMUNICATION
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Telecommunication family
public static final short AFI_MEDICAL
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Medical family
public static final short AFI_MULTIMEDIA
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Multimedia family
public static final short AFI_GAMING
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Gaming family
public static final short AFI_DATA_STORAGE
getNextGPCLRegistryEntry(GPCLRegistryEntry, short)
to look for applications that belong to the Data Storage family
public static final short CARD_INFO_DEFAULT_PROTOCOL_DATA_TYPE_A
public static final short CARD_INFO_DEFAULT_PROTOCOL_DATA_TYPE_B
public static final short CARD_INFO_DEFAULT_PROTOCOL_DATA_TYPE_F
public static final short CARD_INFO_CURRENT_PROTOCOL_DATA_TYPE_A
public static final short CARD_INFO_CURRENT_PROTOCOL_DATA_TYPE_B
public static final short CARD_INFO_CURRENT_PROTOCOL_DATA_TYPE_F
public static final short CARD_INFO_COUNTER_UPDATE
GPCLRegistryEntry
information is updated, this counter is incremented. Used to indicate
off-card applications the need for synchronization.
public static final short GPCL_INTERFACE_ISO14443
GPCL_PROXIMITY_IO_INTERFACE.setCommunicationInterface(short, boolean)
to manage a ISO14443 based communication interface.
public static final short GPCL_PROXIMITY_IO_INTERFACE
setCommunicationInterface(short, boolean)
to manage the availability of the proximity based communication interface.
public static final byte SECURE_ELEMENT_UNKNOWN
public static final byte SECURE_ELEMENT_UICC
public static final byte SECURE_ELEMENT_EMBEDDED
public static final byte SECURE_ELEMENT_SDCARD
public static final short HOST_DEVICE_UI_STATE_UNKNOWN
getHostDeviceUserInterfaceState(),
Constant Field Valuespublic static final short HOST_DEVICE_UI_AVAILABLE
getHostDeviceUserInterfaceState(),
Constant Field Values| Method Detail |
|---|
public static GPCLRegistryEntry getGPCLRegistryEntry(javacard.framework.AID oAID)
GPCLRegistryEntry interface.
oAID - AID of the applet whose GPCLRegistryEntry instance, if
available, shall be retrieved. If null, the GPCLRegistryEntry
instance corresponding of the applet invoking this method, if available, is returned.
GPCLRegistryEntry interface object, or null
public static GPCLRegistryEntry getNextGPCLRegistryEntry(GPCLRegistryEntry oEntry,
short sFamily)
Contactless applets are those applets that have access to the contactless
interface (GPCL_INTERFACE_ISO14443), as specified by Communication
Interface Access Parameters (see INSTALL system parameter Tag 'A5' or, if
not present, implementation-dependent default OPEN values).
This method returns the GPCLRegistryEntry object for the next
contactless applet that matches the search criteria. This method shall only
return entries corresponding to applets currently having access to the
contactless interface.
oEntry - oEntry is null, this method returns the first Entry matching the specified family.
oEntry is not null, and represents an application matching the specified family,
this method retrieves the next application matching the specified family, otherwise it shall return null.
oEntry points to the last application matching the specified family, the method shall return null.
sFamily - the Application Family to look for (as defined in ISO
14443-3). This method shall filter registry entries based on an exact match
with this parameter, with the following precisions:
GPCLRegistryEntry interface object of the contactless applet matching the search
criteria; null is returned if no application is matching or the end of the list is reached.
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if
oEntry is not
directly associated with this Security Domain, and
oEntry is not
referencing this CREL Application.
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
javacard.framework.SystemException - with reason code SystemException.ILLEGAL_USE if the specified oEntry corresponds to an application that has been deleted.AFI_ANY,
AFI_TRANSPORT,
AFI_TELECOMMUNICATION,
AFI_MULTIMEDIA,
AFI_MEDICAL,
AFI_IDENTIFICATION,
AFI_GAMING,
AFI_FINANCIAL,
AFI_DATA_STORAGEpublic static void setVolatilePriority(GPCLRegistryEntry oEntry)
An Application may be assigned the volatile priority only if it is already in the ACTIVATED state, or if it is in the DEACTIVATED state and can be activated. Moreover, a Member Application (part of an Application Group) cannot be assigned the volatile priority directly.
Any Application currently having the volatile priority (e.g. possibly a
Member Application whose group has been assigned the volatile priority),
the Application with the GPCLRegistryEntry.PRIVILEGE_CONTACTLESS_ACTIVATION privilege, and any CREL
Application referenced by an Application currently having the volatile
priority, may reset the volatile priority.
An Application (or Application Group) may be assigned the Volatile Priority even if the Volatile Priority is already assigned. In this case, the implementation shall first check that the Application can be activated and if so, the Volatile Priority shall be first reset before the Application gets the Volatile Priority. The behavior in the case the same Application already has and is assigned again the Volatile Priority remains implementation specific, in particular with respect to notifications.
When a request is made to assign the volatile priority, then
GPCLRegistryEntry.PRIVILEGE_CONTACTLESS_ACTIVATION privilege, or
GPCLRegistryEntry.PRIVILEGE_CONTACTLESS_SELF_ACTIVATION privilege,
CRSApplication.processCLRequest(GPRegistryEntry, GPCLRegistryEntry,
short) with the requester parameter set to the caller of
this method, the target parameter set to
oEntry, and the event parameter set to CLAppletEvent.EVENT_VOLATILE_SELECTION_PRIORITY_SET. This method is
expected to check whether oEntry entry is allowed to acquire
the volatile priority before requesting the CRS Application to perform
the modification.
setVolatilePriority(org.globalplatform.contactless.GPCLRegistryEntry) to assign the volatile priority to the
Application.
CLAppletEvent.EVENT_VOLATILE_SELECTION_PRIORITY_SET shall be notified. In
addition, an Application in the DEACTIVATED state that is assigned the
volatile priority shall have its contactless activation state automatically
transitioned to the ACTIVATED state: this latter modification shall NOT be
notified.
If the volatile priority is reset, then the CLAppletEvent.EVENT_VOLATILE_SELECTION_PRIORITY_RESET shall be
notified. In addition, any Application that previously had the volatile
priority shall have its contactless activation state reset to its previous
value (before being assigned the volatile priority): this latter
modification shall NOT be notified.
The OPEN is responsible for notifying the change of volatile priority (if any) to the following Applications, except to the one that is at the origin of the request:
CRSApplication or
CRELApplication interface,
oEntry, if that CREL
Application implements the CRELApplication interface,
oEntry, if it implements
the CLApplet interface.
oEntry - The entry for which the volatile priority is requested. The
null value shall be used to reset the volatile priority. If
oEntry corresponds to a Head Application, then all
corresponding Member Applications shall be assigned the volatile priority
in the same order as in the GlobalPlatform registry.
javacard.framework.ISOException - with reason code ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller does not
have enough privileges, or the presence of the CRS Application is required
and the CRS Application cannot be located or is not in a selectable state,
or if the CRS Application rejects the request to get the volatile priority.
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the Application corresponding to oEntry checkCommunicationInterfaceAccess(org.globalplatform.GPRegistryEntry, short)), or
ISO7816.SW_WRONG_DATA if the Application cannot be
activated on the contactless interface because of conflicting RF
parameters.
ISO7816.SW_UNKNOWN if the call to the CRSApplication.processCLRequest(GPRegistryEntry, GPCLRegistryEntry, short)
method resulted in an exception being thrown.
javacard.framework.SystemException - with reason code SystemException.ILLEGAL_USE if the specified oEntry corresponds to an Application that has been deleted.
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
public static short getCardCLInfo(byte[] buffer,
short offset,
short info)
buffer - where requested information shall be writtenoffset - within buffer, where requested information shall be writteninfo - any CARD_INFO_XX constant.
offset + length of data written in buffer)
ArrayIndexOutOfBoundsException - if storing the Application Information bytes would cause access
outside array bounds or the offset is negative.
java.lang.NullPointerException - if buffer is null
public static void setCommunicationInterface(short sInterface,
boolean onOff)
sInterface - GPCL_PROXIMITY_IO_INTERFACEonOff - true to switch ON, false to switch OFF
javacard.framework.ISOException - with reason code ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller has not
GPCLRegistryEntry.PRIVILEGE_CONTACTLESS_ACTIVATION when managing the GPCL_PROXIMITY_IO_INTERFACE
ISO7816.SW_WRONG_DATA if sInterface identifier is not defined.
public static boolean checkCommunicationInterfaceAccess(GPRegistryEntry entry,
short sInterface)
GPRegistryEntry can be accessed through specified communication interface.
sInterface - GPCL_PROXIMITY_IO_INTERFACE
javacard.framework.ISOException - with reason code ISO7816.SW_WRONG_DATA if sInterface identifier is not defined.
public static byte getSecureElementType()
Possible values are:
public static short getHostDeviceUserInterfaceState()
NOTE: The mechanisms allowing this method to provide a reliable answer are not yet defined. Hence, the implementation is expected to return an approximate answer based on proprietary mechanisms. More precisions may be given in the future.
HOST_DEVICE_UI_STATE_UNKNOWN: If this bit is set, the
implementation is not able to provide any information about the state of
the host device UI and all other bits shall be ignored.
HOST_DEVICE_UI_AVAILABLE: If this bit is set, the UI shall be
considered available, otherwise it shall be considered unavailable. As an
approximation, the implementation may return an answer based on the power
state of the Host Device.
public static void launchHostDeviceApplication(byte[] parameters,
short offset,
short length)
This is a non-blocking method.
For an implementation based on the HCI specified in [ETSI TS 102 622], the AID of the applet instance invoking this method and the parameters passed to this method are typically used to create an event of type EVENT_TRANSACTION.
parameters - byte array containing the parameters transmitted to the host device applicationoffset - offset of the parameterslength - length of the parameters
javacard.framework.ISOException - with reason code ISO7816.SW_FUNCTION_NOT_SUPPORTED if the card does not support host device notifications.
ISO7816.SW_FILE_FULL if the card does not have enough resources to perform the notification.
ISO7816.SW_WRONG_LENGTH if the length of the parameters is invalid (i.e. greater than 255).
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the conditions to call this method are not satisfied.
java.lang.NullPointerException - if parameters is null.
java.lang.ArrayIndexOutOfBoundsException - if operation would cause access of data outside array bounds.
java.lang.SecurityException - if parametersis not accessible in
the caller's context e.g. parameters is not a global array nor
an array belonging to the caller context.
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||